/**
 * Created by Administrator on 2016/6/28.
 */
//连接数据库
var mongodb = require('./db')

function Post(name, title, post,ip){
    this.name = name
    this.title = title
    this.post = post
    this.ip = ip
}
//发表文章
Post.prototype.save = function(callback){
    //1.收集数据
    //2.打开数据库
    //3.插入到数据库的posts集合当中去
    //4.返回到首页， 提示发布成功
    var date = new Date()
    var time = {
        date:date,
        year:date.getFullYear(),
        month: date.getFullYear() + '-' +(date.getMonth()+1),
        day:date.getFullYear() + '-' + (date.getMonth()+1)+'-'+date.getDate(),
        hour:date.getFullYear() + '-' + (date.getMonth()+1)+'-'+date.getDate()+'-'
        +date.getHours(),
        minute:date.getFullYear() + '-' + (date.getMonth()+1)+'-'+date.getDate()+'-'
        +date.getHours()+ '-' + date.getMinutes()

    }

    var post = {
        name:this.name,
        title:this.title,
        time:time,
        ip:this.ip,
        post:this.post
    }
    mongodb.open(function(err, db){
        if(err){
            return callback(err)
        }
        db.collection('posts', function(err, collection){
            if(err){
                mongodb.close()
                return callback(err)
            }
            collection.insert(post, {safe:true}, function(err, post){
                mongodb.close()
                if(err){
                    return callback(err)
                }
                //不返回任何结果， 只是完成存储任务
                callback(null)
            })
        })
    })
}
//查询所有文章
Post.get = function(name, callback){
    //1.打开数据库
    //2.查询posts集合
    //3.查询所有的集合当中的文章
    //4.返回给回调函数
    mongodb.open(function(err ,db){
        if(err){
            return callback(err)
        }
        db.collection('posts', function(err, collection){
            if(err){
                mongodb.close()
                return callback(err)
            }
            //如果有查询条件，根据查询条件进行筛选
            var query = {}
            if(name){
                query.name = name
            }
            collection.find(query).sort({time:-1}).toArray(function(err, docs){
                mongodb.close()
                if(err){
                    return callback(err)
                }
                callback(null, docs)
            })
        })
    })
}
module.exports = Post